package com.scholarship.system.service;

import com.scholarship.system.common.dto.Result;
import com.scholarship.system.entity.Student;

import java.util.List;
import java.util.Map;

/**
 * 学生服务接口
 */
public interface StudentService {

    /**
     * 获取学生列表
     * 
     * @param advisorId 导师ID，如果为null则获取所有学生
     * @param keyword   关键字搜索（学号/姓名）
     * @return 学生列表
     */
    Result<List<Map<String, Object>>> getStudentList(Long advisorId, String keyword);

    /**
     * 获取学生详情
     * 
     * @param id 学生ID
     * @return 学生详情
     */
    Result<Map<String, Object>> getStudentDetail(Long id);

    /**
     * 添加学生
     * 
     * @param student  学生信息
     * @param userInfo 用户信息（姓名、性别、手机、邮箱等）
     * @return 结果
     */
    Result<Void> addStudent(Student student, Map<String, Object> userInfo);

    /**
     * 更新学生
     * 
     * @param student  学生信息
     * @param userInfo 用户信息（姓名、性别、手机、邮箱等）
     * @return 结果
     */
    Result<Void> updateStudent(Student student, Map<String, Object> userInfo);

    /**
     * 删除学生
     * 
     * @param id 学生ID
     * @return 结果
     */
    Result<Void> deleteStudent(Long id);

    /**
     * 分配导师
     * 
     * @param studentId 学生ID
     * @param advisorId 导师ID
     * @return 结果
     */
    Result<Void> assignAdvisor(Long studentId, Long advisorId);
}